<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /*
            给定一个包含 '()[]{}'的字符串，判断字符串是否有效。有效字符串满足：
            左括号必须用相同类型的右括号闭合；左括号必须以正确的顺序闭合；
            例如1：输入'()[]{}'
            输入：true

            例如2：输入'[(]{)'
            输出：false
        */

        const str = '()[]{}';
   
        var isValid = function(s) {
            let map = {
                '{': '}',
                '(': ')',
                '[': ']'
            }
            let stack = []
            for(let i = 0; i < s.length ; i++) {
                // console.log(i, map[s[i]], s[i])
                if(map[s[i]]) {
                    stack.push(s[i])
                } else if(s[i] !== map[stack.pop()]){
                    // console.log('::', map[stack.pop()], s[i], stack.pop())
                    return false
                }
            }
            return stack.length === 0;
        };

        console.log(isValid('[(]{)'))
    </script>
</body>
</html>